#ifndef _COMMAND_MANAGER_H_
# define _COMMAND_MANAGER_H_

# include <string>
# include <list>
# include "amanager.h"
# include "command.h"

struct CmdArgs : public IArgs
{
public:
	std::list<std::string>*       Args;

public:
	CmdArgs(std::list<std::string>* _args);
	virtual ~CmdArgs();
};

struct CmdMngrArgs : public IArgs
{
public:
	std::string		Name;
	CmdArgs*		Params;

public:
	CmdMngrArgs(std::string const& _name, CmdArgs* _params = NULL);
	virtual ~CmdMngrArgs();
};



class CommandManager : public AManager<Command>
{
public:
	CommandManager();
	virtual ~CommandManager();

	virtual void Manage(IArgs* _args);
};

#endif // _COMMAND_MANAGER_H_
